// pages/list/list.js
import { userlike } from '../../request/api_type'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    titleList: [
      { title: "综合", sort: "", resort: "" },
      { title: "销量", sort: "salecount_1", resort: "salecount_-1" },
      { title: "价格", sort: "price_1", resort: "price_-1" },
    ],
    titleFlag: 0,
    listData: []
  },
  listData: [],
  /* 请求传入数据的格式 */
  listForm: {
    page: 1,
    pageSize: 10,
    cid: "",
    search: "",
    is_best: "",
    is_hot: "",
    is_new: "",
    sort: ""
  },
  sort: false,
  /* 点击列表页title */
  setFlag(e) {
    const { index } = e.currentTarget ? e.currentTarget.dataset : e;
    /* 调用请求接口传入当前点击的tab下标 */
    this.getList(this.listForm.cid, index)

    /* 因为这里setData是异步的所以index比较的是上次保存的一次index */
    this.setData({
      titleFlag: index
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    const { id } = options;
    const index = this.data.titleFlag;
    const searchList = JSON.parse(id)
    if (Array.isArray(searchList)) {
      /* 迭代数据分离 */
      this.listData[index] = searchList
      this.setData({
        listData: this.listData
      })
      return;
    }
    this.getList(searchList, index)
  },
  /* 请求列表封装 */
  getList(id, index) {
    if (id) {
      var formData = this.listForm
      const { titleList, titleFlag } = this.data
      formData.cid = id
      /* id可以为一个下标，也可以为一个十六进制字符串  当两次下标一致时说明一个tab是被重复的第二次点击 */
      /* 因为这里setData是异步的所以index比较的是上次保存的一次index，而这里是同步赋值 所以通能可以依靠这个特性实现 */
      if (titleFlag && this.sort) {
        formData.sort = titleList[titleFlag].resort
        /* 当前排序正反切换 */
        this.sort = !this.sort;
      } else {
        formData.sort = titleList[titleFlag].sort
        this.sort = true
      }
      console.log(formData)
      userlike(formData).then(res => {
        const { result } = res.data;
        /* 迭代数据分离 */
        this.listData[index] = result
        this.setData({
          listData: this.listData
        })
        console.log(this.data.listData)
      })
    }
  },
  /* 列表跳转详情页 */
  goDetail(e) {
    const { index } = e.currentTarget.dataset;
    wx.navigateTo({
      url: "/pages/detail/detail?id=" + index
    })
  },
  /* swiper动画结束事件  请求数据改变flag */
  bindanimationfinish(e) {
    const { current } = e.detail
    if (this.data.titleFlag === current) {
      /* 动画结束用户为改变页面不会重新请求数据 */
      return;
    }
    this.setData({
      titleFlag: current
    })
    /* 调用setFlag */
    this.setFlag({ index: current })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})